package com.lam.mall.service;

import java.util.List;

import com.lam.mall.entity.Notice;
import com.lam.mall.param.NoticeParam;
import com.lam.mall.app.vo.NoticeVo;

/**
 * 公告管理Service接口
 * 
 * @author admin
 * @date 2023-04-20
 */
public interface NoticeService {

    /**
     * 查询公告管理
     * 
     * @param id 公告管理ID
     * @return 单个对象
     */
    public Notice selectById(String id);

    /**
     * 查询公告管理列表
     * 
     * @param param 
     * @return 列表集合
     */
    public List<Notice> selectList(NoticeParam param);

    /**
     * 新增公告管理
     * 
     * @param notice 
     * @return 
     */
    public int insert(Notice notice);

    /**
     * 修改公告管理
     * 
     * @param notice 
     * @return 
     */
    public int update(Notice notice);

    /**
     * 删除公告管理信息
     * 
     * @param id ID
     * @return 
     */
    public int deleteById(String id);
    
    /**
     * 获取公告列表
     * @return
     */
    List<Notice> listNoticeCache();

    /**
     * 删除公告缓存
     */
    void removeNoticeCache();

    /**
     * 分页获取公布的公告
     * @param page
     * @return
     */
    List<NoticeVo> pageNotice();

    /**
     * 根据公告id获取公告
     * @param noticeId
     * @return
     */
    Notice getNoticeByIdCache(String noticeId);

    /**
     * 根据公告id删除公告
     * @param noticeId
     */
    void removeNoticeByIdCache(String noticeId);

}
